public class Factory {
	
	interface Xyz {
		Xyz cloan ();
	}
	
	static class Tom implements Xyz {
		public Xyz cloan () {
			return new Tom();
			}

		public String toString () {
			return "ttt";
			}
		}

	static class Dick implements Xyz {
		public Xyz cloan() {
			return new Dick();
			}
		
		public String toString () {
			return "ddd"; 
			}
		}
	static class Harry implements Xyz {
		public Xyz cloan() {
			return new Harry();
			}
		
		public String toString() {
			return "hhh";
			}
		}
	
	@SuppressWarnings("unchecked")
	static class factory {
		@SuppressWarnings("rawtypes")
		private static java.util.Map prototypes = new java.util.HashMap();
		static {
			prototypes.put("tom", new Tom());
			prototypes.put("dick", new Dick());
			prototypes.put("harry", new Harry());
			}
		
		public static Xyz makeObject(String s){
			return ((Xyz)prototypes.get(s)).cloan();
			}
		}

	public static void main (String[] args) {
		for(int i=0; i<args.length; i++) {
			System.out.print (factory.makeObject(args[i]) + " ");
			}
		}
	}